This crate defines Elliptic Curve traits, curve models that follow these traits, and multi-scalar multiplications.
Implementations of particular curves using these curve models can be found in arkworks-rs/curves
.
The available elliptic curve traits are:
AffineCurve
- Interface for elliptic curve points in the 'canonical form' for serialization.ProjectiveCurve
- Interface for elliptic curve points in a representation that is more efficient for most computation.PairingEngine
- Pairing friendly elliptic curves (Contains the pairing function, and acts as a wrapper type on G1, G2, GT, and the relevant fields).CurveCycle
- Trait representing a cycle of elliptic curves.PairingFriendlyCycle
- Trait representing a cycle of pairing friendly elliptic curves.
The elliptic curve models implemented are:
- Short Weierstrass curves. The
AffineCurve
in this case is in typical Short Weierstrass point representation, and theProjectiveCurve
is using points in Jacobian Coordinates. - Twisted Edwards curves. The
AffineCurve
in this case is in standard Twisted Edwards curve representation, whereas theProjectiveCurve
uses points in Extended Twisted Edwards Coordinates.